const user = require("../sql/user");
const md5 = require("md5");
const jwt = require("jsonwebtoken");

module.exports = function(){
  return (req,res,next)=>{
    const {username, password} = req.query;
    user.find({username}).then(data=>{
      if(data.length === 0){
        res.send( {
          state: 0,
          msg: "用户名不存在"
        } )
      }else{
        if(data[0].password === md5(password)){

          // 前后端不分离的开发方式：
          // cookie:将登录成功的信息存储到cookie
          //   后端存，后端读
          // res.cookie("isLogin", "ok");

          // session:号称是加密的cookie
          //   后端存，后端读
          // req.session.isLogin = "ok";

          // 前后端分离的开发方式：
          // token:后端生成加密字段，发给前端，前端负责存储，下次连接时，前端携带加密字段，后端解密该字段，验证登录时效
          // 生成token
          const token = jwt.sign({
            userId: data[0].userId,
            username: data[0].username,
            sex:data[0].sex,
            age:data[0].age,
            tel:data[0].tel,
            hobby:data[0].hobby,
            power:data[0].power,
            avatar:data[0].avatar
          }, "千锋H5", {
            expiresIn: 60 * 60
          });
          
          res.send( {
            state: 1,
            msg: "登录成功",
            // 将token发给前端
            token: token
          } )
        }else{
          res.send( {
            state: 2,
            msg: "密码错误"
          } )
        }
      }
    })
  }
}